package com.cx.base.day19_thread;

import lombok.extern.slf4j.Slf4j;

/**
 * @Author: robert.song
 * @Date: Created in 2021/8/17
 */
public class Thread_12_犹豫模式 {
    public static void main(String[] args) {
        TwoPhaseTermination2 twoPhaseTermination = new TwoPhaseTermination2();
        twoPhaseTermination.start();
    }
}

@Slf4j
class TwoPhaseTermination2 {
    //    监控线程
    private Thread monitorThread;
    //    停止标记
    private boolean stop = false;
    //    判断是否执行过start方法
    private boolean starting = false;

    //    启动监控线程
    public void start() {
//        犹豫模式：判断是否已经执行了，如已执行就不再重复走了
//        应用场景：一个线程执行了，其余线程不再执行
        if (starting) {
            return;
        }
        starting = true;
        monitorThread = new Thread(() -> {
        }, "monitor");
        monitorThread.start();
    }
}
